#include "ThreadPool.hpp"
#include "Task.hpp"
#include <ctime>
#include <thread>

int main()
{
    prctl(PR_SET_NAME, "master");//更改当前线程名称
    const string operators = "+-*/%";
    unique_ptr<ThreadPool<Task>> tp(ThreadPool<Task>::getInstance());
    tp->start();

    srand((unsigned long)time(nullptr) ^ getpid() ^ pthread_self());

    while(true)
    {
        int one = rand() % 50;
        int two = rand() % 10;
        char oper = operators[rand() % operators.size()];
        Log() <<  "主线程派发计算任务: " << one << oper << two << "=?" << "\n";
        Task t(one, two, oper);
        tp->push(t);
        sleep(1);
    }

    return 0;
}